<?php
require_once("../Datos/Selector.php");
require_once("../Datos/SubConsulta.php");
require_once("../Datos/Tablas/Tbl_ec_ventas.php");
require_once("../Datos/Selectores/Sel_Pedidos_Ventas.php");
require_once("../Datos/Selectores/Sel_Sv_Stock.php");

class Sel_Ventas extends Selector{

	function Sel_Ventas(&$conexion, $articulo=''){
		$this->Selector($conexion);

		$this->Nombre = "Ventas";
		$this->estTablaBase(new Tbl_ec_ventas($conexion, ''));
		
		$relacionada = new SubConsulta(new Sel_Pedidos($conexion), '');
		$this->agregarTablaRelacionada($relacionada, 'INNER JOIN');
		$this->agregarCampoJunta($this->tablaBase->obtCampo('ven_pedido'), $this->obtCampoRelacionado('Pedidos', 'Pedido'), '=');
		
		$relacionada = new SubConsulta(new Sel_Sv_Stock($conexion, $articulo), '');
		$this->agregarTablaRelacionada($relacionada, 'INNER JOIN');
		$this->agregarCampoJunta($this->tablaBase->obtCampo('ven_id'), $this->obtCampoRelacionado('Sv_Stock', 'sv_venta'), '=');
		
		$campo = $this->tablaBase->obtCampo('ven_id');
		$campo->estAlias('Codigo');
		$this->agregarCampoVisible($campo);
		
		$campo = $this->obtCampoRelacionado('Pedidos', 'Pedido');
		$campo->estAlias('Pedido');
		$campo->estEsBase(1);
		$campo->estEsReadOnly(1);
		$campo->estOcultoListado(1);
		$this->agregarCampoVisible($campo);
		
		$campo = $this->obtCampoRelacionado('Pedidos', 'Fecha');
		$campo->estAlias('Fecha Pedido');
		$campo->estEsBase(1);
		$campo->estEsReadOnly(1);
		$this->agregarCampoVisible($campo);
				
		$campo = $this->tablaBase->obtCampo('ven_fecha');
		$campo->estAlias('Fecha Venta');
		$this->agregarCampoVisible($campo);	
		
		$campo = $this->obtCampoRelacionado('Pedidos', 'Localidad');
		$campo->estAlias("Localidad");
		$campo->estEsBase(1);
		$campo->estEsReadOnly(1);
		$this->agregarCampoVisible($campo);
		
		$campo = $this->obtCampoRelacionado('Pedidos', 'Cliente');
		$campo->estAlias("Cliente");
		$campo->estEsBase(1);
		$campo->estEsReadOnly(1);
		$this->agregarCampoVisible($campo);
		
		$campo = $this->obtCampoRelacionado('Pedidos', 'Articulo');
		$campo->estEsBase(1);
		$campo->estEsReadOnly(1);
		$this->agregarCampoVisible($campo);	
		
		$campo = $this->obtCampoRelacionado('Pedidos', 'Monto');
		$campo->estAlias("Monto ($)");
		$campo->estEsBase(1);
		$campo->estEsReadOnly(1);
		$this->agregarCampoVisible($campo);
		
		$campo = $this->obtCampoRelacionado('Sv_Stock', 'stock_articulo');
		$campo->estAlias("Stock");
		$campo->estOcultoListado(1);
		$campo->estOcultoListado(1);
		$this->agregarCampoVisible($campo);
						
		$campo = $this->tablaBase->obtCampo('ven_com_vendedor');
		$campo->estAlias('Com. Vendedor (%)');
		$campo->estOcultoListado(1);
		$this->agregarCampoVisible($campo);
		
		$campo = $this->tablaBase->obtCampo('ven_com_cobrador');
		$campo->estAlias('Com. Cobrador (%)');
		$campo->estOcultoListado(1);
		$this->agregarCampoVisible($campo);
		

		$this->txtConsulta = $this->GenerarConsulta();
 }
 
 function obtOpciones(&$campo, $columnas=''){
		if($columnas != ''){
			$campo->obtTabla()->Selector->estCondicionOpciones($columnas);
			$campo->obtTabla()->esttxtTabla();
		}
		$claves = $campo->obtTabla()->obtNombresClaves();
		//var_dump($campo->obtTabla());
		$columnas = array_keys($claves);
		$coma = " ";
		$consulta = "SELECT";
		foreach($columnas as $col){
			$consulta .= $coma . $campo->obtTabla()->obttxtAlias().".".$col;
			$coma = ", ";
		}
		$consulta .= $coma . $campo->obtExpresion();
		$consulta .= " FROM " . $campo->obtTabla()->obttxtTabla();
		if($campo->obtTabla()->obttxtTabla() != $campo->obtTabla()->obttxtAlias()){
			$consulta .= " as " . $campo->obtTabla()->obttxtAlias();
		}
		return $this->obtResultado($consulta);
}
 
}
?>
